package com.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.PageInfo;
import com.project.bean.UserBean;

/***
 * 用户表业务成接口
 */
public interface IUserService {


    /**
     * 按用户名，用户密码登录，
     * 同时根据用户名跳转到该用户权限界面
     * @param userName      用户名
     * @param userPwd       用户密码
     * @return              用户对象
     */
    public UserBean login(String userName,String userPwd);


    /**
     * 模糊查询，根据用户名查出用户，
     * 同时查询该用户的角色，并分页
     * @param page      页码
     * @param pageSize  分页数
     * @param name      用户名
     * @return          分页对象
     */
    public PageInfo<UserBean> findByItem(int page, int pageSize, String name);


    /**
     * 按id查询用户
     * 同时查询用户角色集合
     * @param id    用户id
     * @param用户对象
     */
    public UserBean findById(int id);


    /***
     * 查询用户是否存在，
     * 如果不存在，添加用户和用户角色，
     * 返回true，
     * 否则false
     * @param user          用户对象
     * @param roleArray     角色数组
     */
    public boolean addUser(UserBean user,int[] roleArray);

    /**
     * 按照id删除用户，
     * 同时删除该用户对应的角色，
     *同时删除该用户对应的未完成的采购数据和明细
     * @param id
     */
    public void delUser(int id);


    /**
     * 按照id修改用户的角色，添加或删除角色，
     * 同时显示该用户对应的权限
     * @param id
     * @param roleArray
     */
    public void updateUser(int id,int [] roleArray);


    /**
     * 按照id修改密码,
     * 判断新密码与确认新密码是否一致，
     * 如果一致返回true，不一致false，
     * 判断旧密码与新密码不能一致，否则返回false
     * @param id        id
     * @param oldPwd    旧密码
     * @param newPwd    新密码
     * @param newPwd2   确认新密码
     * @return   boolean
     */
    public String updatePwd(int id,String oldPwd,String newPwd,String newPwd2);

}
